﻿Imports System.Collections.Generic
Imports System.ComponentModel
Imports MySql.Data.MySqlClient
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms

Public Class frmPesqAluno

    Private Sub frmPesqAluno_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        'Animacao(Me)

        ' TODO: esta linha de código carrega dados na tabela 'sCEDataSet.Alunos'. Você pode movê-la ou removê-la conforme necessário.
        Me.alunosTableAdapter.Fill(Me.sCEDataSet.Alunos)

        If frmLogin.acesso = 1 Then
            btnSalvar.Visible = True
            btnEditar.Visible = True
        Else
            btnSalvar.Visible = False
            btnEditar.Visible = False
        End If

        LimparCampo()
        cbFiltrar.SelectedIndex = 0
        cbEstadoCivil.SelectedIndex = 0
        txtNome.CharacterCasing = CharacterCasing.Upper
        txtNomeRes.CharacterCasing = CharacterCasing.Upper
        txtEndereco.CharacterCasing = CharacterCasing.Upper
        txtEnderecoRes.CharacterCasing = CharacterCasing.Upper
    End Sub

    Private Sub btnPesquisar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPesquisar.Click
        If cbFiltrar.SelectedIndex = 0 Or cbFiltrar.SelectedIndex = 1 Then
            If txtPesquisa.Text = String.Empty Or txtPesquisa.Text = " " Then
                MsgBox("Favor preencher o campo de pesquisa.", vbOKOnly, "Aviso")
                Exit Sub
            End If
        End If

        Dim SCE As New MySqlConnection(My.MySettings.Default.SCE_ETEC_ConnectionString) 'Properties.Settings.[Default].SCE_ETEC_ConnectionString)
        'Data Source é Properties.Settings.Default.SCEConnectionString
        Dim cmd As New MySqlCommand()
        Me.Width = 671
        Me.Height = 507
        dgvDadosAluno.Visible = True
        Try
            If cbFiltrar.SelectedIndex = 0 Then 'Código do Aluno
                'Define a instrução Sql
                Dim sql As String = "SELECT * FROM Alunos nolock WHERE cod_aluno =" + txtPesquisa.Text & ""
                'Lê os dados da variavel sql e conectar no cn
                cmd = New MySqlCommand(sql, SCE)
                'Abre conexão
                SCE.Open()
                'Define o valor da CommandType para cmd
                cmd.CommandType = CommandType.Text
                'Representa um conjunto de comandos de dados e uma conexão de banco de dados
                '                     * que são usados para preencher o DataSet e atualizar um banco de dados SQL Server.

                Dim SCEAdapter As New MySqlDataAdapter(cmd)
                'Representa uma tabela de dados na memória.
                Dim aluno As New DataTable()
                ' Adiciona ou atualiza linhas em um DataTable para que correspondam na fonte de
                '                     * dados usando o DataTable.

                SCEAdapter.Fill(aluno)
                'A tbClienteDataGridView recebe o DataTable cliente

                'Fechar a conexão
                dgvDadosAluno.DataSource = aluno
            ElseIf cbFiltrar.SelectedIndex = 1 Then ' Nome
                'define a instrução SQL
                Dim sql As String = "SELECT * FROM Alunos nolock WHERE Nome LIKE '%" + txtPesquisa.Text & "%'"
                cmd = New MySqlCommand(sql, SCE)
                SCE.Open()
                cmd.CommandType = CommandType.Text
                Dim SCEAdapter As New MySqlDataAdapter(cmd)
                Dim alunos As New DataTable()
                SCEAdapter.Fill(alunos)
                dgvDadosAluno.DataSource = alunos
            ElseIf cbFiltrar.SelectedIndex = 2 Then ' Série
                'define a instrução SQL
                Dim sql As String = "SELECT * FROM Alunos nolock WHERE Serie ='" + cbPesquisa.SelectedItem & "'"
                cmd = New MySqlCommand(sql, SCE)
                SCE.Open()
                cmd.CommandType = CommandType.Text
                Dim SCEAdapter As New MySqlDataAdapter(cmd)
                Dim alunos As New DataTable()
                SCEAdapter.Fill(alunos)
                dgvDadosAluno.DataSource = alunos
            ElseIf cbFiltrar.SelectedIndex = 3 Then ' Periodo
                'define a instrução SQL
                Dim sql As String = "SELECT * FROM Alunos nolock WHERE Periodo ='" + cbPesquisa.SelectedItem & "'"
                cmd = New MySqlCommand(sql, SCE)
                SCE.Open()
                cmd.CommandType = CommandType.Text
                Dim SCEAdapter As New MySqlDataAdapter(cmd)
                Dim alunos As New DataTable()
                SCEAdapter.Fill(alunos)
                dgvDadosAluno.DataSource = alunos
            End If
        Catch ex As Exception
            'Caso haja uma exceção
            MsgBox(ex.Message, vbOKOnly, "Erro")
        Finally
            'Fechar a conexão
            SCE.Close()
        End Try
    End Sub

    Private Sub dgvDadosAluno_Click(ByVal sender As Object, ByVal e As EventArgs) Handles dgvDadosAluno.Click
        'Limpar a GroupBox
        'LimparCampo()

        'Passando informações do DataGrid para os campos.
        Try
            ' Aluno
            txtNome.Text = dgvDadosAluno.CurrentRow.Cells(1).Value.ToString()
            txtDataNasc.Text = dgvDadosAluno.CurrentRow.Cells(2).Value.ToString()
            txtRG.Text = dgvDadosAluno.CurrentRow.Cells(3).Value.ToString()
            txtEndereco.Text = dgvDadosAluno.CurrentRow.Cells(4).Value.ToString()
            txtTelefone.Text = dgvDadosAluno.CurrentRow.Cells(5).Value.ToString()
            cbPeriodo.Text = dgvDadosAluno.CurrentRow.Cells(6).Value.ToString()
            cbSerie.Text = dgvDadosAluno.CurrentRow.Cells(7).Value.ToString()
            ' Responsável
            txtNomeRes.Text = dgvDadosAluno.CurrentRow.Cells(13).Value.ToString()
            txtDataNascRes.Text = dgvDadosAluno.CurrentRow.Cells(14).Value.ToString()
            txtRGRes.Text = dgvDadosAluno.CurrentRow.Cells(15).Value.ToString()
            cbEstadoCivil.Text = dgvDadosAluno.CurrentRow.Cells(16).Value.ToString()
            txtEnderecoRes.Text = dgvDadosAluno.CurrentRow.Cells(17).Value.ToString()
            txtTelRes.Text = dgvDadosAluno.CurrentRow.Cells(18).Value.ToString()
            btnEditar.Enabled = True
        Catch
        End Try
    End Sub

    ' Limpar campos
    Private Sub LimparCampo()
        For Each c As Control In Controls
            If TypeOf c Is GroupBox Then
                For i As Integer = 0 To c.Controls.Count - 1
                    If TypeOf c.Controls(i) Is TextBox Then
                        TryCast(c.Controls(i), TextBox).Clear()
                    End If
                    If TypeOf c.Controls(i) Is ComboBox Then

                        TryCast(c.Controls(i), ComboBox).Text = ""
                    End If
                Next
            End If
        Next
    End Sub

    Private Sub btnEditar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnEditar.Click
        calc_idade(txtDataNasc.Text) ' Verificar
        btnCancelar.Enabled = True
        btnSalvar.Enabled = True
        btnPesquisar.Enabled = False
        If status_idade = 1 Then
            gbResponsavel.Enabled = True
            gbAluno.Enabled = True
        Else
            gbResponsavel.Enabled = False
            gbAluno.Enabled = True
        End If
    End Sub

    Private Sub btnSalvar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSalvar.Click
        Dim status As Integer = 0
        Dim msg_erro As String = ""

        Try
            ' dgvDadosAluno.CurrentRow.Cells(1).Value = txtNome.Text
            'dgvDadosAluno.CurrentRow.Cells(2).Value = txtDataNasc.Text
            ' dgvDadosAluno.CurrentRow.Cells(3).Value = txtRG.Text
            ' dgvDadosAluno.CurrentRow.Cells(4).Value = txtEndereco.Text
            ' dgvDadosAluno.CurrentRow.Cells(5).Value = txtTelefone.Text
            ' dgvDadosAluno.CurrentRow.Cells(6).Value = cbPeriodo.Text
            ' dgvDadosAluno.CurrentRow.Cells(7).Value = cbSerie.Text
            'If gbResponsavel.Enabled Then
            ' dgvDadosAluno.CurrentRow.Cells(8).Value = txtNomeRes.Text
            ' dgvDadosAluno.CurrentRow.Cells(9).Value = txtDataNascRes.Text
            ' dgvDadosAluno.CurrentRow.Cells(10).Value = txtRGRes.Text
            ' dgvDadosAluno.CurrentRow.Cells(11).Value = cbEstadoCivil.Text
            ' dgvDadosAluno.CurrentRow.Cells(12).Value = txtEnderecoRes.Text
            ' dgvDadosAluno.CurrentRow.Cells(13).Value = txtTelRes.Text
            'Else

            'End If

            Dim SCE As New MySqlConnection(My.MySettings.Default.SCE_ETEC_ConnectionString) 'Properties.Settings.[Default].SCE_ETEC_ConnectionString)
            Try
                'SqlConnection SCE = new MySqlConnection(Properties.Settings.Default.SCE_ETEC_ConnectionString);
                Dim cmd As New MySqlCommand()
                SCE.Open()

                ' comando UPDATE tabela SET campo1='valor', campo2='valor' WHERE id='valor'
                Dim sqlCmd As String = "UPDATE Alunos SET Nome=@Nome, data_nasc=@data_nasc, RG=@RG, Endereco=@Endereco, Telefone=@Telefone, Periodo=@Periodo, Serie=@Serie, Nome_Res=@Nome_Res, Data_Nasc_Res=@Data_Nasc_Res, RG_Res=@RG_Res, Est_Civil=@Est_Civil, End_Res=@End_Res, Telefone_Res=@Telefone_Res WHERE cod_aluno=@codigo_aluno"
                cmd = New MySqlCommand(sqlCmd, SCE)

                cmd.Parameters.AddWithValue("@codigo_aluno", Convert.ToInt32(dgvDadosAluno.CurrentRow.Cells(0).Value.ToString()))

                cmd.Parameters.AddWithValue("@Nome", txtNome.Text)
                cmd.Parameters.AddWithValue("@data_nasc", txtDataNasc.Text)
                cmd.Parameters.AddWithValue("@RG", txtRG.Text)
                cmd.Parameters.AddWithValue("@Endereco", txtEndereco.Text)
                cmd.Parameters.AddWithValue("@Telefone", txtTelefone.Text)
                cmd.Parameters.AddWithValue("@Periodo", cbPeriodo.Text)
                cmd.Parameters.AddWithValue("@Serie", cbSerie.Text)
                cmd.Parameters.AddWithValue("@Nome_Res", txtNomeRes.Text)
                cmd.Parameters.AddWithValue("@Data_Nasc_Res", txtDataNascRes.Text)
                cmd.Parameters.AddWithValue("@RG_Res", txtRGRes.Text)
                cmd.Parameters.AddWithValue("@Est_Civil", cbEstadoCivil.Text)
                cmd.Parameters.AddWithValue("@End_Res", txtEnderecoRes.Text)
                cmd.Parameters.AddWithValue("@Telefone_Res", txtTelRes.Text)

                cmd.ExecuteNonQuery()
            Catch erro As MySqlException
                'MsgBox(erro.Message, vbOKOnly, "Erro")
                status = 1
                msg_erro = erro.Message
            Finally

                SCE.Close()
                btnEditar.Enabled = False
                btnCancelar.Enabled = False
                btnSalvar.Enabled = False
                btnPesquisar.Enabled = True
                gbResponsavel.Enabled = False
                gbAluno.Enabled = False
                If status = 0 Then
                    MsgBox("Concluido com sucesso.", vbOKOnly, "Aviso")
                Else
                    MsgBox("Concluido com erro, favor verificar as informações." & vbCrLf & vbCrLf & "Detalhes:" & vbCrLf & msg_erro, vbOKOnly, "Erro")
                End If
                InvokeOnClick(btnPesquisar, EventArgs.Empty)
            End Try
        Catch
        End Try
    End Sub

    Private Sub cbFiltrar_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cbFiltrar.SelectedIndexChanged
        If cbFiltrar.Text = "Código do Aluno" Then
            cbPesquisa.Visible = False
            cbPesquisa.Enabled = False
            txtPesquisa.Enabled = True
            txtPesquisa.Visible = True
        End If

        If cbFiltrar.Text = "Nome" Then
            cbPesquisa.Visible = False
            cbPesquisa.Enabled = False
            txtPesquisa.Enabled = True
            txtPesquisa.Visible = True
        End If
        If cbFiltrar.Text = "Série" Then
            cbPesquisa.Visible = True
            cbPesquisa.Enabled = True
            txtPesquisa.Enabled = False
            txtPesquisa.Visible = False
            cbPesquisa.Items.Clear()
            cbPesquisa.Items.Add("1º Ano do EF")
            cbPesquisa.Items.Add("2º Ano do EF")
            cbPesquisa.Items.Add("3º Ano do EF")
            cbPesquisa.Items.Add("4º Ano do EF")
            cbPesquisa.Items.Add("5º Ano do EF")
            cbPesquisa.Items.Add("6º Ano do EF")
            cbPesquisa.Items.Add("7º Ano do EF")
            cbPesquisa.Items.Add("8º Ano do EF")
            cbPesquisa.Items.Add("9º Ano do EF")
            cbPesquisa.Items.Add("1º Ano do EM")
            cbPesquisa.Items.Add("2º Ano do EM")
            cbPesquisa.Items.Add("3º Ano do EM")
            cbPesquisa.Items.Add("Tecnico em Informatica")
            cbPesquisa.Items.Add("Tecnico em Administracao")
            cbPesquisa.SelectedIndex = 0
        End If
        If cbFiltrar.Text = "Periodo" Then
            cbPesquisa.Visible = True
            cbPesquisa.Enabled = True
            txtPesquisa.Enabled = False
            txtPesquisa.Visible = False
            cbPesquisa.Items.Clear()
            cbPesquisa.Items.Add("Manha")
            cbPesquisa.Items.Add("Tarde")
            cbPesquisa.Items.Add("Noite")
            cbPesquisa.Items.Add("Integral")
            cbPesquisa.SelectedIndex = 0
        End If
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        btnEditar.Enabled = False
        btnSalvar.Enabled = False
        btnPesquisar.Enabled = True
        btnCancelar.Enabled = False
    End Sub

    Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click
        Invoke(frmMain.teste, frmCadAluno)
    End Sub
End Class